/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.viajaconmigo.repository.jpa;

import com.viajaconmigo.model.Usuario;
import com.viajaconmigo.repository.UsuarioDAO;
import javax.inject.Named;
import javax.persistence.Query;

/**
 *
 * @author Pablo
 */
@Named
public class UsuarioDAOJPA extends GenericoDAOJPA<Usuario> implements UsuarioDAO{


    
    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")
    @Override
    public Usuario buscarNickPW(String nick, String password) {
        Query q = em.createQuery("SELECT u FROM Usuario u WHERE "
                + "u.nick = :nick and u.password = :password");
        q.setParameter("nick", nick);
        q.setParameter("password", password);
        Usuario usuario;
        try {
            usuario = (Usuario) q.getSingleResult();
        }catch (Exception ex){
            usuario = null;
        }    
        return usuario;
    }
    
    @Override
    public Usuario getUsuarioByNickOrEmail(String nick, String email) {
        Query q = em.createQuery("SELECT u FROM Usuario u WHERE "
                + "u.nick = :nick or u.email = :email");
        q.setParameter("nick", nick);
        q.setParameter("email", email);
        Usuario usuario;
        try {
            usuario = (Usuario) q.getSingleResult();
        }catch (Exception ex){
            usuario = null;            
        }  
        return usuario;
    }
    /*
    @Override
    public Provincias getProvincia(int idProvincia) {
        return em.find(Provincias.class, idProvincia);
    }
    */
    @Override
    public Usuario getUsuarioByNick(String nick){
        Query q = em.createQuery("SELECT u FROM Usuario u WHERE u.nick = :nick");
        q.setParameter("nick", nick);        
        Usuario usuario;
        try {
            usuario = (Usuario) q.getSingleResult();
        }catch (Exception ex){
            usuario = null;            
        }  
        return usuario;
    }
}
